/**
Carrega do banco de dados as fontes vinculadas � programaId
@programaId - ID do programa cadastrado no banco de dados
*/
function CarregarFontes( programaId )
{
         var ajax = new sack();
         var url = "http://"+servidor+"/CarregarDados.php?informacao=fontes&programaId="+programaId;
         ajax.requestFile = url;
         ajax.onCompletion = function() { ProcessarXMLFonte( ajax.responseXML ); };
         ajax.runAJAX();
}


/**
Transforma os resultados vindo do XML em informa��es din�micas na tela
@xml - XML com as informa��es sobre a fonte
*/
function ProcessarXMLFonte( xml )
{
         var selectFontes = document.getElementById("listaFontes");
         var optionFonte = document.getElementById("fonte");

         var i;
         // antes de exibir o resultado limpa o select que contem as informa��es da consulta anterior
         for( i = selectFontes.length -1; i >= 1; i-- )
         {
                  selectFontes.remove(i);
         }

         if( xml == null )
         {
             /*var divInformacaoSetor = document.getElementById("informacaoSetor");
             if( divInformacaoSetor != null )
                 divInformacaoSetor.innerHTML = "";*/
             optionFonte.innerHTML = "Nenhuma fonte cadastrada!";

         }
         else
         {

              var resultadosXML = xml.getElementsByTagName("fonte");

              if( resultadosXML.length > 0) // verifica se houveram resultados
	          {
        		                      for(var i=0; i < resultadosXML.length; i++) // percorre o resultado
        		                      {
                                                  // recupera as informa��es vindas do xml
                                                  var fonte = resultadosXML[i];
                                                  var fonteId = fonte.getElementsByTagName("id")[0].firstChild.nodeValue;
                                                  var fonteRecurso = fonte.getElementsByTagName("fonte_recurso")[0].firstChild.nodeValue;
                                                  var tipoDespesa = fonte.getElementsByTagName("tipo_despesa")[0].firstChild.nodeValue;

                                                  // adiciona um novo 'option' ao campo select com a fonte encontrado
                                                  var novaFonte = document.createElement("option");
                                                  novaFonte.setAttribute("id", "fonte");
                                                  novaFonte.value = fonteId;
                                                  novaFonte.text  = fonteRecurso+" - "+tipoDespesa;;
                                                  selectFontes.options.add(novaFonte);
                                      }
                                      optionFonte.innerHTML = "Selecione a fonte";
             }
        }
}

function CarregarFontesRep( programaId )
{
         var ajax = new sack();
         var url = "http://"+servidor+"/CarregarDados.php?informacao=fontes&programaId="+programaId;
         ajax.requestFile = url;
         ajax.onCompletion = function() { ProcessarXMLFonteRep( ajax.responseXML ); };
         ajax.runAJAX();
}

/**
Transforma os resultados vindo do XML em informa��es din�micas na tela
@xml - XML com as informa��es sobre a fonte
*/
function ProcessarXMLFonteRep( xml )
{
         var selectFontes = document.getElementById("listaFontes");
         var optionFonte = document.getElementById("fonte");

         var i;
         // antes de exibir o resultado limpa o select que contem as informa��es da consulta anterior
         for( i = selectFontes.length -1; i >= 1; i-- )
         {
                  selectFontes.remove(i);
         }

         if( xml == null )
         {
             /*var divInformacaoSetor = document.getElementById("informacaoSetor");
             if( divInformacaoSetor != null )
                 divInformacaoSetor.innerHTML = "";*/
             optionFonte.innerHTML = "Nenhuma fonte cadastrada!";

         }
         else
         {

              var resultadosXML = xml.getElementsByTagName("fonte");

              if( resultadosXML.length > 0) // verifica se houveram resultados
	          {
        		                      for(var i=0; i < resultadosXML.length; i++) // percorre o resultado
        		                      {
                                                  // recupera as informa��es vindas do xml
                                                  var fonte = resultadosXML[i];
                                                  var fonteId = fonte.getElementsByTagName("id")[0].firstChild.nodeValue;
                                                  var fonteRecurso = fonte.getElementsByTagName("fonte_recurso")[0].firstChild.nodeValue;
                                                  var tipoDespesa = fonte.getElementsByTagName("tipo_despesa")[0].firstChild.nodeValue;

                                                  // adiciona um novo 'option' ao campo select com a fonte encontrado
                                                  var novaFonte = document.createElement("option");
                                                  novaFonte.setAttribute("id", "fonte");
                                                  novaFonte.value = fonteId;
                                                  novaFonte.text  = fonteRecurso+" - "+tipoDespesa;;
                                                  selectFontes.options.add(novaFonte);
                                      }
                                      optionFonte.innerHTML = "Todos";
             }
        }
}

/**
Carrega do banco de dados as fontes vinculadas � programaId e filtradas por um tipo de despesa
podendo ser 33 - corrente 44 - capital
@programaId - ID do programa cadastrado no banco de dados
*/
function FiltrarFontes( programaId )
{
         var ajax = new sack();
         var url = "http://"+servidor+"/CarregarDados.php?informacao=fontes&programaId="+programaId;
         ajax.requestFile = url;
         ajax.onCompletion = function() { ProcessarXMLFiltrarFonte( ajax.responseXML ); };
         ajax.runAJAX();
}

/**
Transforma os resultados vindo do XML em informa��es din�micas na tela
@xml - XML com as informa��es sobre a fonte
*/
function ProcessarXMLFiltrarFonte( xml )
{
         var selectFontes = document.getElementById("listaFontes");
         var optionFonte = document.getElementById("fonte");

         var i;
         // antes de exibir o resultado limpa o select que contem as informa��es da consulta anterior
         for( i = selectFontes.length -1; i >= 1; i-- )
         {
                  selectFontes.remove(i);
         }

         if( xml == null )
         {
             /*var divInformacaoSetor = document.getElementById("informacaoSetor");
             if( divInformacaoSetor != null )
                 divInformacaoSetor.innerHTML = "";*/
             optionFonte.innerHTML = "Nenhuma fonte cadastrada!";

         }
         else
         {

              var resultadosXML = xml.getElementsByTagName("fonte");
              var selectTipoDesp = document.getElementById("tipoDespesa").value;
              if( resultadosXML.length > 0) // verifica se houveram resultados
	          {
        		                      for(var i=0; i < resultadosXML.length; i++) // percorre o resultado
        		                      {
                                                  // recupera as informa��es vindas do xml
                                                  var fonte = resultadosXML[i];
                                                  var fonteId = fonte.getElementsByTagName("id")[0].firstChild.nodeValue;
                                                  var fonteRecurso = fonte.getElementsByTagName("fonte_recurso")[0].firstChild.nodeValue;
                                                  var tipoDespesa = fonte.getElementsByTagName("tipo_despesa")[0].firstChild.nodeValue;

                                                  // adiciona um novo 'option' ao campo select com a fonte encontrado
                                                 if((tipoDespesa == selectTipoDesp )||(selectTipoDesp == 0)){
                                                  var novaFonte = document.createElement("option");
                                                  novaFonte.setAttribute("id", "fonte");
                                                  novaFonte.value = fonteId;
                                                  novaFonte.text  = fonteRecurso+" - "+tipoDespesa;
                                                  selectFontes.options.add(novaFonte);
                                      }
                                      optionFonte.innerHTML = "Selecione a fonte";
        		                      }
             }
        }
}
/**
Carrega do banco de dados os valores dos campos das fontes vinculadas � programaId para 
@programaId - ID do programa cadastrado no banco de dados
*/
function CarregarCampoFonte( programaId )
{
         var ajax = new sack();
         var url = "http://"+servidor+"/CarregarDados.php?informacao=fontes&programaId="+programaId;
         ajax.requestFile = url;
         ajax.onCompletion = function() { ProcessarXMLCampoFonte( ajax.responseXML ); };
         ajax.runAJAX();
}

/**
Transforma os resultados vindo do XML em informa��es din�micas na tela
@xml - XML com as informa��es sobre a fonte
*/
function ProcessarXMLCampoFonte( xml )
{
	
	         var tbCampoFonte = document.getElementById("tbCampoFonte");

	         for( var i = tbCampoFonte.rows.length; i > 0 ; i-- ) // remover linhas da tabela
	        	 tbCampoFonte.deleteRow ( i-1 );

	         var resultadosXML = xml.getElementsByTagName("fonte");

	         for(var i=0; i < resultadosXML.length; i++) // percorre o resultado
	    	 {
	        	 // recupera as informa��es vindas do xml
	        	 var fonte = resultadosXML[i];
	        	 var fonteId 		      = fonte.getElementsByTagName("id")[0].firstChild.nodeValue;
	        	 var fonteRecurso 		  = fonte.getElementsByTagName("fonte_recurso")[0].firstChild.nodeValue;
	        	 var fonteTipoDespesa 	  = fonte.getElementsByTagName("tipo_despesa")[0].firstChild.nodeValue;
	        	 var fonteValor		  	  = fonte.getElementsByTagName("valor")[0].firstChild.nodeValue;
	        	 var possuiRateio  		  = fonte.getElementsByTagName("possui_rateio")[0].firstChild.nodeValue;
	    		                          
	    		                          
	    		                          
	        	 
	        	 var trTbCampoFonteRecurso = document.createElement("tr");
	        	 
	        	 tbCampoFonte.appendChild ( trTbCampoFonteRecurso );

	                                      
	        	 var tdlbFonteRecursoTbCampoFonte = document.createElement("td");
	        	 tdlbFonteRecursoTbCampoFonte.setAttribute("class", "textoTabelas");
	        	 tdlbFonteRecursoTbCampoFonte.setAttribute("width", "30%");
	        	 tdlbFonteRecursoTbCampoFonte.innerHTML = "&nbsp;Fonte de Recurso:";
	        	 trTbCampoFonteRecurso.appendChild ( tdlbFonteRecursoTbCampoFonte );
	                                      
	        	 var tdFonteRecursoTbCampoFonte = document.createElement("td");
	        	 tdFonteRecursoTbCampoFonte.setAttribute("class", "textoTabelas");
	        	 tdFonteRecursoTbCampoFonte.innerHTML = "<input name='fonteRecurso"+i+"' value='"+fonteRecurso+"' class='inputTexto' size='15' maxlength='10'/>"+"<input type='hidden' name='fonteId"+i+"' value='"+fonteId+"'/>";
	        	 trTbCampoFonteRecurso.appendChild ( tdFonteRecursoTbCampoFonte );
	        	 
	        	 
	        	 //Linha de Espaco da tabela &nbsp;
	        	 var trNbsp = document.createElement("tr"); 
	        	 tbCampoFonte.appendChild ( trNbsp );
	        	 
	        	 var tdNbsp = document.createElement("tr");
	        	 tdNbsp.setAttribute("colspan", "2");
	        	 tdNbsp.innerHTML = "&nbsp;";
	        	 trNbsp.appendChild(tdNbsp);
	        	 //
	        	 
	        	 var trTbCampoFonteTipoDespesa = document.createElement("tr");
	        	 tbCampoFonte.appendChild ( trTbCampoFonteTipoDespesa );
	        	 
	        	 var tdlbTipoDespesaTbCampoFonte = document.createElement("td");
	        	 tdlbTipoDespesaTbCampoFonte.setAttribute("class", "textoTabelas");
	        	 tdlbTipoDespesaTbCampoFonte.setAttribute("width", "30%");
	        	 tdlbTipoDespesaTbCampoFonte.innerHTML = "&nbsp;Tipo de Despesa:";
	        	 trTbCampoFonteTipoDespesa.appendChild ( tdlbTipoDespesaTbCampoFonte );
	        	 
	        	 var selectTipoDespesa = "";
	        		
	        	if (fonteTipoDespesa == 33){
	        		selectTipoDespesa = "<select name='tipoDespesa"+i+"' id='tipoDespesa"+i+"' class='inputTexto' >"                             
                    +"<option value='33' name='despesa"+i+"' id='despesa"+i+"' selected>33 - Corrente</option>"
                    +"<option value='44' name='despesa"+i+"' id='despesa"+i+"'>44 - Capital</option>"
                    +"</select> ";
	        	}
		        if (fonteTipoDespesa == 44){
		        		selectTipoDespesa = "<select name='tipoDespesa"+i+"' id='tipoDespesa"+i+"' class='inputTexto' >"                             
	                    +"<option value='33' name='despesa"+i+"' id='despesa"+i+"' >33 - Corrente</option>"
	                    +"<option value='44' name='despesa"+i+"' id='despesa"+i+"'selected>44 - Capital</option>"
	                    +"</select> ";
		        	}
	        	 
	        	 var tdTipoDespesaTbCampoFonte = document.createElement("td"); 
	        	 tdTipoDespesaTbCampoFonte.setAttribute("class", "textoTabelas");
	        	 tdTipoDespesaTbCampoFonte.innerHTML = selectTipoDespesa;
	        	 trTbCampoFonteTipoDespesa.appendChild ( tdTipoDespesaTbCampoFonte );
	        	 
	        	 //Linha de Espaco da tabela &nbsp;
	        	 var trNbsp = document.createElement("tr"); 
	        	 tbCampoFonte.appendChild ( trNbsp );
	        	 
	        	 var tdNbsp = document.createElement("tr");
	        	 tdNbsp.setAttribute("colspan", "2");
	        	 tdNbsp.innerHTML = "&nbsp;";
	        	 trNbsp.appendChild(tdNbsp);
	        	 //
	        	 
	        	 var trTbCampoFonteValor = document.createElement("tr");
	        	 tbCampoFonte.appendChild ( trTbCampoFonteValor );
	        	 
	        	 var tdlbValorTbCampoFonte = document.createElement("td");
	        	 tdlbValorTbCampoFonte.setAttribute("class", "textoTabelas");
	        	 tdlbValorTbCampoFonte.setAttribute("width", "30%");
	        	 tdlbValorTbCampoFonte.innerHTML = "&nbsp;Valor:";
	        	 trTbCampoFonteValor.appendChild ( tdlbValorTbCampoFonte );

	        	 var tdValorTbCampoFonte = document.createElement("td");
	        	 tdValorTbCampoFonte.setAttribute("class", "textoTabelas");
	        	 
	        	 var valorFonteMoeda = formataMoeda(fonteValor);
	        	 if(possuiRateio == "sim"){                 
	        	 tdValorTbCampoFonte.innerHTML = "R$ "+valorFonteMoeda+"<input type='hidden' name='fonteValor"+i+"' value='"+valorFonteMoeda+"'/>";
	        	 trTbCampoFonteValor.appendChild ( tdValorTbCampoFonte );
	        	 }else if(possuiRateio == "nao"){	        		 
		        	 tdValorTbCampoFonte.innerHTML = "R$ "+"<input class='inputNumeros' name='fonteValor"+i+"' type='text' size='15' maxlength='13' onKeyPress='reais(this,event);' onKeyDown='backspace(this,event);' value='"+valorFonteMoeda+" />";
		        	 trTbCampoFonteValor.appendChild ( tdValorTbCampoFonte );

	        	 }
	        		 
	        	 
	        	 //Linha de separacao entre as fontes
	        	 if(i != resultadosXML.length-1){
	        	 var trEndLine = document.createElement("tr"); 
	        	 tbCampoFonte.appendChild ( trEndLine );
	        	 	        	 
	        	 var tdEndLine = document.createElement("td");
	        	 tdEndLine.setAttribute("colspan", "2");
	        	 tdEndLine.setAttribute("class", "traco");
	        	 tdEndLine.innerHTML = "&nbsp";
	        	 trEndLine.appendChild(tdEndLine);
	        	 }
	        	 //
	        	 
	        	 //Linha de Espaco da tabela &nbsp;
	        	 var trNbsp = document.createElement("tr"); 
	        	 tbCampoFonte.appendChild ( trNbsp );
	        	 
	        	 var tdNbsp = document.createElement("tr");
	        	 tdNbsp.setAttribute("colspan", "2");
	        	 tdNbsp.innerHTML = "&nbsp;";
	        	 trNbsp.appendChild(tdNbsp);
	        	 //
	    	 }


	
}

/**
Carrega do banco de dados os valores dos campos das fontes vinculadas � programaId para 
@programaId - ID do programa cadastrado no banco de dados
*/
function CarregarCampoFonteRemov( programaId )
{
         var ajax = new sack();
         var url = "http://"+servidor+"/CarregarDados.php?informacao=fontes&programaId="+programaId;
         ajax.requestFile = url;
         ajax.onCompletion = function() { ProcessarXMLCampoFonteRemov( ajax.responseXML ); };
         ajax.runAJAX();
}

/**
Transforma os resultados vindo do XML em informa��es din�micas na tela
@xml - XML com as informa��es sobre a fonte
*/

function ProcessarXMLCampoFonteRemov( xml )
{
	
	         var tbCampoFonte = document.getElementById("tbCampoFonteRemov");

	         for( var i = tbCampoFonte.rows.length; i > 0 ; i-- ) // remover linhas da tabela
	        	 tbCampoFonte.deleteRow ( i-1 );

	         var resultadosXML = xml.getElementsByTagName("fonte");

	         for(var i=0; i < resultadosXML.length; i++) // percorre o resultado
	    	 {
	        	 // recupera as informa��es vindas do xml
	        	 var fonte = resultadosXML[i];
	        	 var fonteId 		      = fonte.getElementsByTagName("id")[0].firstChild.nodeValue;
	        	 var fonteRecurso 		  = fonte.getElementsByTagName("fonte_recurso")[0].firstChild.nodeValue;
	        	 var fonteTipoDespesa 	  = fonte.getElementsByTagName("tipo_despesa")[0].firstChild.nodeValue;
	        	 var fonteValor		  	  = fonte.getElementsByTagName("valor")[0].firstChild.nodeValue;
	    		                          
	    		                          
	    		                          
	        	 
	        	 var trTbCampoFonteRecurso = document.createElement("tr");
	        	 
	        	 tbCampoFonte.appendChild ( trTbCampoFonteRecurso );

	                                      
	        	 var tdlbFonteRecursoTbCampoFonte = document.createElement("td");
	        	 tdlbFonteRecursoTbCampoFonte.setAttribute("class", "textoTabelas");
	        	 tdlbFonteRecursoTbCampoFonte.setAttribute("width", "30%");
	        	 tdlbFonteRecursoTbCampoFonte.innerHTML = "<input type='checkbox' name='check"+i+"' value='"+fonteId+"'>Fonte de Recurso:";
	        	 trTbCampoFonteRecurso.appendChild ( tdlbFonteRecursoTbCampoFonte );
	                                      
	        	 var tdFonteRecursoTbCampoFonte = document.createElement("td");
	        	 tdFonteRecursoTbCampoFonte.setAttribute("class", "textoTabelas");
	        	 tdFonteRecursoTbCampoFonte.innerHTML = fonteRecurso;
	        	 trTbCampoFonteRecurso.appendChild ( tdFonteRecursoTbCampoFonte );
	        	 
	        	 
	        	 //Linha de Espaco da tabela &nbsp;
	        	 var trNbsp = document.createElement("tr"); 
	        	 tbCampoFonte.appendChild ( trNbsp );
	        	 
	        	 var tdNbsp = document.createElement("tr");
	        	 tdNbsp.setAttribute("colspan", "2");
	        	 tdNbsp.innerHTML = "&nbsp;";
	        	 trNbsp.appendChild(tdNbsp);
	        	 //
	        	 
	        	 var trTbCampoFonteTipoDespesa = document.createElement("tr");
	        	 tbCampoFonte.appendChild ( trTbCampoFonteTipoDespesa );
	        	 
	        	 var tdlbTipoDespesaTbCampoFonte = document.createElement("td");
	        	 tdlbTipoDespesaTbCampoFonte.setAttribute("class", "textoTabelas");
	        	 tdlbTipoDespesaTbCampoFonte.setAttribute("width", "30%");
	        	 tdlbTipoDespesaTbCampoFonte.innerHTML = "&nbsp;Tipo de Despesa:";
	        	 trTbCampoFonteTipoDespesa.appendChild ( tdlbTipoDespesaTbCampoFonte );
	        	 
	        	 var tdTipoDespesaTbCampoFonte = document.createElement("td"); 
	        	 tdTipoDespesaTbCampoFonte.setAttribute("class", "textoTabelas");
	        	 tdTipoDespesaTbCampoFonte.innerHTML = fonteTipoDespesa == '33'?"33 - Corrente":"44 - Capital" ;
	        	 trTbCampoFonteTipoDespesa.appendChild ( tdTipoDespesaTbCampoFonte );
	        	 
	        	 //Linha de Espaco da tabela &nbsp;
	        	 var trNbsp = document.createElement("tr"); 
	        	 tbCampoFonte.appendChild ( trNbsp );
	        	 
	        	 var tdNbsp = document.createElement("tr");
	        	 tdNbsp.setAttribute("colspan", "2");
	        	 tdNbsp.innerHTML = "&nbsp;";
	        	 trNbsp.appendChild(tdNbsp);
	        	 //
	        	 
	        	 var trTbCampoFonteValor = document.createElement("tr");
	        	 tbCampoFonte.appendChild ( trTbCampoFonteValor );
	        	 
	        	 var tdlbValorTbCampoFonte = document.createElement("td");
	        	 tdlbValorTbCampoFonte.setAttribute("class", "textoTabelas");
	        	 tdlbValorTbCampoFonte.setAttribute("width", "30%");
	        	 tdlbValorTbCampoFonte.innerHTML = "&nbsp;Valor:";
	        	 trTbCampoFonteValor.appendChild ( tdlbValorTbCampoFonte );

	        	 var tdValorTbCampoFonte = document.createElement("td");
	        	 tdValorTbCampoFonte.setAttribute("class", "textoTabelas");
	        	 
                 var valorFonteMoeda = formataMoeda(fonteValor);
	        	 tdValorTbCampoFonte.innerHTML = "R$ "+valorFonteMoeda;
	        	 trTbCampoFonteValor.appendChild ( tdValorTbCampoFonte );

	        	 
	        	 //Linha de separacao entre as fontes
	        	 if(i != resultadosXML.length-1){
	        	 var trEndLine = document.createElement("tr"); 
	        	 tbCampoFonte.appendChild ( trEndLine );
	        	 	        	 
	        	 var tdEndLine = document.createElement("td");
	        	 tdEndLine.setAttribute("colspan", "2");
	        	 tdEndLine.setAttribute("class", "traco");
	        	 tdEndLine.innerHTML = "&nbsp";
	        	 trEndLine.appendChild(tdEndLine);
	        	 }
	        	 //
	        	 
	        	 //Linha de Espaco da tabela &nbsp;
	        	 var trNbsp = document.createElement("tr"); 
	        	 tbCampoFonte.appendChild ( trNbsp );
	        	 
	        	 var tdNbsp = document.createElement("tr");
	        	 tdNbsp.setAttribute("colspan", "2");
	        	 tdNbsp.innerHTML = "&nbsp;";
	        	 trNbsp.appendChild(tdNbsp);
	        	 //
	    	 }


	
}

/**
Carrega do banco de dados uma lista fontes vinculadas � programaId
@programaId - ID do programa cadastrado no banco de dados
*/
function CarregarListaFontes( programaId )
{
         var ajax = new sack();
         var url = "http://"+servidor+"/CarregarDados.php?informacao=fontes&programaId="+programaId;
         ajax.requestFile = url;
         ajax.onCompletion = function() { ProcessarXMLListarFontes( ajax.responseXML ); };
         ajax.runAJAX();
}

function ProcessarXMLListarFontes( xml )
{
         var tabelaListarFonte = document.getElementById("corpoFonte");

         for( var i = tabelaListarFonte.rows.length; i > 0 ; i-- ) // remover linhas da tabela
              tabelaListarFonte.deleteRow ( i-1 );

         if ( xml != null) // verifica se houveram resultados
          {
          

	         var resultadosXML = xml.getElementsByTagName("fonte");

	         for(var i=0; i < resultadosXML.length; i++) // percorre o resultado
	    	 {
	        	 // recupera as informa��es vindas do xml
	        	 var fonte = resultadosXML[i];
	        	 var fonteId 		      = fonte.getElementsByTagName("id")[0].firstChild.nodeValue;
	        	 var fonteRecurso 		  = fonte.getElementsByTagName("fonte_recurso")[0].firstChild.nodeValue;
	        	 var fonteTipoDespesa 	  = fonte.getElementsByTagName("tipo_despesa")[0].firstChild.nodeValue;
	        	 var fonteValor		  	  = fonte.getElementsByTagName("valor")[0].firstChild.nodeValue;
    		                          
    		     
    		                          
    		                          
                var trTabelaListarFonte = document.createElement("tr");
                                              
                tabelaListarFonte.appendChild ( trTabelaListarFonte );

                var tdfonteRecursoTabelaListarFontes = document.createElement("td");
                tdfonteRecursoTabelaListarFontes.setAttribute("class", "textoCentral");
                tdfonteRecursoTabelaListarFontes.innerHTML = fonteRecurso;
                trTabelaListarFonte.appendChild ( tdfonteRecursoTabelaListarFontes );
                                              
                var tdFonteTipoDespesaTabelaListarFonte = document.createElement("td");
                tdFonteTipoDespesaTabelaListarFonte.setAttribute("class", "textoCentral");
                tdFonteTipoDespesaTabelaListarFonte.innerHTML = fonteTipoDespesa == '33'?"33 - Corrente":"44 - Capital" ;
                trTabelaListarFonte.appendChild ( tdFonteTipoDespesaTabelaListarFonte );

                var valorFonteMoeda = formataMoeda(fonteValor);
                var tdValorTabelaListarFonte = document.createElement("td");
                tdValorTabelaListarFonte.setAttribute("class", "textoDireita");
                tdValorTabelaListarFonte.innerHTML = "R$ "+valorFonteMoeda;
                trTabelaListarFonte.appendChild ( tdValorTabelaListarFonte );
                                  }
         }else{
              var trTabelaListarFonte = document.createElement("tr");
              tabelaListarFonte.appendChild ( trTabelaListarFonte );

              var tdNomeTabelaListarFonte = document.createElement("td");
              tdNomeTabelaListarFonte.setAttribute("colspan", "6");
              tdNomeTabelaListarFonte.setAttribute("class", "textoCentral");
              tdNomeTabelaListarFonte.innerHTML = "N�o existe nenhuma Fonte cadastrada para essa A��o Or&ccedil;amentaria";
              trTabelaListarFonte.appendChild ( tdNomeTabelaListarFonte );
         }
}

/**
Carrega do banco de dados os valores dos campos das fontes vinculadas � programaId para 
@programaId - ID do programa cadastrado no banco de dados
*/
function CarregarCampoSuplementacao( programaId )
{
         var ajax = new sack();
         var url = "http://"+servidor+"/CarregarDados.php?informacao=fontes&programaId="+programaId;
         ajax.requestFile = url;
         ajax.onCompletion = function() { ProcessarXMLCampoSuplementacao( ajax.responseXML ); };
         ajax.runAJAX();
}

/**
Transforma os resultados vindo do XML em informa��es din�micas na tela
@xml - XML com as informa��es sobre a fonte
*/
function ProcessarXMLCampoSuplementacao( xml )
{
	
	         var tbCampoFonte = document.getElementById("tbCampoFonte");

	         for( var i = tbCampoFonte.rows.length; i > 0 ; i-- ) // remover linhas da tabela
	        	 tbCampoFonte.deleteRow ( i-1 );

	         var resultadosXML = xml.getElementsByTagName("fonte");

	         for(var i=0; i < resultadosXML.length; i++) // percorre o resultado
	    	 {
	        	 // recupera as informa��es vindas do xml
	        	 var fonte = resultadosXML[i];
	        	 var fonteId 		      = fonte.getElementsByTagName("id")[0].firstChild.nodeValue;
	        	 var fonteRecurso 		  = fonte.getElementsByTagName("fonte_recurso")[0].firstChild.nodeValue;
	        	 var fonteTipoDespesa 	  = fonte.getElementsByTagName("tipo_despesa")[0].firstChild.nodeValue;
	        	 var fonteValor		  	  = fonte.getElementsByTagName("valor")[0].firstChild.nodeValue;
	        	 var saldoFonte			  = fonte.getElementsByTagName("saldo_fonte")[0].firstChild.nodeValue;
	    		                          
	    		                          
	    		                          
	        	 
	        	 var trTbCampoFonteTipoDespesa = document.createElement("tr");
	        	 tbCampoFonte.appendChild ( trTbCampoFonteTipoDespesa );
	        	 
	        	 var tdlbTipoDespesaTbCampoFonte = document.createElement("td");
	        	 tdlbTipoDespesaTbCampoFonte.setAttribute("class", "textoTabelas");
	        	 tdlbTipoDespesaTbCampoFonte.setAttribute("width", "30%");
	        	 tdlbTipoDespesaTbCampoFonte.innerHTML = "&nbsp;Tipo de Despesa:"+"<input type='hidden' name='fonteId"+i+"' value='"+fonteId+"'/>";
	        	 trTbCampoFonteTipoDespesa.appendChild ( tdlbTipoDespesaTbCampoFonte );
	        	 
	        	 var TipoDespesa = "";
	        		
	        	if (fonteTipoDespesa == 33){
	        		TipoDespesa = "33 - Corrente";
	        	}
		        if (fonteTipoDespesa == 44){
		        		TipoDespesa = "44 - Capital";
		        	}
	        	 
	        	 var tdTipoDespesaTbCampoFonte = document.createElement("td"); 
	        	 tdTipoDespesaTbCampoFonte.setAttribute("class", "textoTabelas");
	        	 tdTipoDespesaTbCampoFonte.innerHTML = TipoDespesa +"<input type='hidden' name='tipoDespesa"+i+"' value='"+fonteTipoDespesa+"'/>";
	        	 trTbCampoFonteTipoDespesa.appendChild ( tdTipoDespesaTbCampoFonte );
	        	 
	        	 //Linha de Espaco da tabela &nbsp;
	        	 var trNbsp = document.createElement("tr"); 
	        	 tbCampoFonte.appendChild ( trNbsp );
	        	 
	        	 var tdNbsp = document.createElement("tr");
	        	 tdNbsp.setAttribute("colspan", "2");
	        	 tdNbsp.innerHTML = "&nbsp;";
	        	 trNbsp.appendChild(tdNbsp);
	        	 //
	        	 
	        	 var trTbCampoFonteRecurso = document.createElement("tr");
	        	 
	        	 tbCampoFonte.appendChild ( trTbCampoFonteRecurso );

	                                      
	        	 var tdlbFonteRecursoTbCampoFonte = document.createElement("td");
	        	 tdlbFonteRecursoTbCampoFonte.setAttribute("class", "textoTabelas");
	        	 tdlbFonteRecursoTbCampoFonte.setAttribute("width", "30%");
	        	 tdlbFonteRecursoTbCampoFonte.innerHTML = "&nbsp;Fonte de Recurso:";
	        	 trTbCampoFonteRecurso.appendChild ( tdlbFonteRecursoTbCampoFonte );
	                                      
	        	 var tdFonteRecursoTbCampoFonte = document.createElement("td");
	        	 tdFonteRecursoTbCampoFonte.setAttribute("class", "textoTabelas");
	        	 tdFonteRecursoTbCampoFonte.innerHTML = fonteRecurso+"<input type='hidden' name='fonteRecurso"+i+"' value='"+fonteRecurso+"'/>";
	        	 trTbCampoFonteRecurso.appendChild ( tdFonteRecursoTbCampoFonte );
	        	 
	        	 
	        	 //Linha de Espaco da tabela &nbsp;
	        	 var trNbsp = document.createElement("tr"); 
	        	 tbCampoFonte.appendChild ( trNbsp );
	        	 
	        	 var tdNbsp = document.createElement("tr");
	        	 tdNbsp.setAttribute("colspan", "2");
	        	 tdNbsp.innerHTML = "&nbsp;";
	        	 trNbsp.appendChild(tdNbsp);
	        	 //
	        	 
	        	 	        	 
	        	 var trTbCampoFonteValor = document.createElement("tr");
	        	 tbCampoFonte.appendChild ( trTbCampoFonteValor );
	        	 
	        	 var tdlbValorTbCampoFonte = document.createElement("td");
	        	 tdlbValorTbCampoFonte.setAttribute("class", "textoTabelas");
	        	 tdlbValorTbCampoFonte.setAttribute("width", "30%");
	        	 tdlbValorTbCampoFonte.innerHTML = "&nbsp;Valor:";
	        	 trTbCampoFonteValor.appendChild ( tdlbValorTbCampoFonte );

	        	 var tdValorTbCampoFonte = document.createElement("td");
	        	 tdValorTbCampoFonte.setAttribute("class", "textoTabelas");
	        	 
                 var valorFonteMoeda = formataMoeda(fonteValor);
	        	 tdValorTbCampoFonte.innerHTML = "R$ "+valorFonteMoeda+"<input type='hidden' name='fonteValor"+i+"' value='"+valorFonteMoeda+"'/>";
	        	 trTbCampoFonteValor.appendChild ( tdValorTbCampoFonte );
	        	 
	        	 
	        	 //Linha de Espaco da tabela &nbsp;
	        	 var trNbsp = document.createElement("tr"); 
	        	 tbCampoFonte.appendChild ( trNbsp );
	        	 
	        	 var tdNbsp = document.createElement("tr");
	        	 tdNbsp.setAttribute("colspan", "2");
	        	 tdNbsp.innerHTML = "&nbsp;";
	        	 trNbsp.appendChild(tdNbsp);
	        	 //

	        	 var trTbCampoFonteSaldo= document.createElement("tr");
	        	 tbCampoFonte.appendChild ( trTbCampoFonteSaldo );
	        	 
	        	 var tdlbSaldoTbCampoFonte = document.createElement("td");
	        	 tdlbSaldoTbCampoFonte.setAttribute("class", "textoTabelas");
	        	 tdlbSaldoTbCampoFonte.setAttribute("width", "30%");
	        	 tdlbSaldoTbCampoFonte.innerHTML = "&nbsp;Saldo da Fonte:";
	        	 trTbCampoFonteSaldo.appendChild ( tdlbSaldoTbCampoFonte );

	        	 var tdSaldoTbCampoFonte = document.createElement("td");
	        	 tdSaldoTbCampoFonte.setAttribute("class", "textoTabelas");
	        	 
                 var saldoFonteMoeda = formataMoeda(saldoFonte);
	        	 tdSaldoTbCampoFonte.innerHTML = "R$ "+saldoFonteMoeda+"<input type='hidden' id='fonteSaldo"+i+"' name='fonteSaldo"+i+"' value='"+saldoFonteMoeda+"'/>";
	        	 trTbCampoFonteSaldo.appendChild ( tdSaldoTbCampoFonte );
	        	 
	        	 
	        	 //Linha de Espaco da tabela &nbsp;
	        	 var trNbsp = document.createElement("tr"); 
	        	 tbCampoFonte.appendChild ( trNbsp );
	        	 
	        	 var tdNbsp = document.createElement("tr");
	        	 tdNbsp.setAttribute("colspan", "2");
	        	 tdNbsp.innerHTML = "&nbsp;";
	        	 trNbsp.appendChild(tdNbsp);
	        	 //
	        	 
	        	 var trTbCampoOpcao = document.createElement("tr");
	        	 
	        	 tbCampoFonte.appendChild ( trTbCampoOpcao );

	                                      
	        	 var tdlbOpcaoTbCampoFonte = document.createElement("td");
	        	 tdlbOpcaoTbCampoFonte.setAttribute("class", "textoTabelas");
	        	 tdlbOpcaoTbCampoFonte.setAttribute("width", "30%");
	        	 tdlbOpcaoTbCampoFonte.innerHTML = "&nbsp;Op&ccedil;&atilde;o:"+"<input type='hidden' value='"+resultadosXML.length+"' id='totalRegistros"+i+"'/>";
	        	 trTbCampoOpcao.appendChild ( tdlbOpcaoTbCampoFonte );
	        	 
	        	selectOpcao = "<select name='listaOpcao"+i+"' id='tipoOpcao"+i+"' class='inputTexto' >"                             
                +"<option value='1' name='opcao"+i+"' id='opcao"+i+"' selected>Suplementa&ccedil;&atilde;o</option>"
                +"<option value='2' name='opcao"+i+"' id='opcao"+i+"'>Cancelamento</option>"
                +"</select> ";
	                                      
	        	 var tdOpcaoTbCampoFonte = document.createElement("td");
	        	 tdOpcaoTbCampoFonte.setAttribute("class", "textoTabelas");
	        	 tdOpcaoTbCampoFonte.innerHTML = selectOpcao;
	        	 trTbCampoOpcao.appendChild ( tdOpcaoTbCampoFonte );
	        	 
	        	 
	        	 //Linha de Espaco da tabela &nbsp;
	        	 var trNbsp = document.createElement("tr"); 
	        	 tbCampoFonte.appendChild ( trNbsp );
	        	 
	        	 var tdNbsp = document.createElement("tr");
	        	 tdNbsp.setAttribute("colspan", "2");
	        	 tdNbsp.innerHTML = "&nbsp;";
	        	 trNbsp.appendChild(tdNbsp);
	        	 //
	        	 
	        	 	        	 
	        	 var trTbCampoValorSC = document.createElement("tr");
	        	 tbCampoFonte.appendChild ( trTbCampoValorSC );
	        	 
	        	 var tdlbValorScTbCampoFonte = document.createElement("td");
	        	 tdlbValorScTbCampoFonte.setAttribute("class", "textoTabelas");
	        	 tdlbValorScTbCampoFonte.setAttribute("width", "30%");
	        	 tdlbValorScTbCampoFonte.innerHTML = "&nbsp;Valor:";
	        	 trTbCampoValorSC.appendChild ( tdlbValorScTbCampoFonte );

	        	 var tdValorTbCampoFonte = document.createElement("td");
	        	 tdValorTbCampoFonte.setAttribute("class", "textoTabelas");
	        	 	        	
                 var valorFonteMoeda = formataMoeda(fonteValor);
                 var Id = "valorSup"+i;
	        	 tdValorTbCampoFonte.innerHTML = "<input type='text' id='scValor"+i+"' name='scValor"+i+"' size='15' maxlength='13' class='inputNumeros'onKeyPress='reais(this,event)' onKeyDown='backspace(this,event)' onKeyUp='CarregarSuplemento("+i+" ,document.cadastrar_suplemento.listaOpcao"+i+".value, "+fonteValor+", "+saldoFonte+" ,document.cadastrar_suplemento.scValor"+i+".value); '/>";
	        	 trTbCampoValorSC.appendChild ( tdValorTbCampoFonte );
	        	 
	        	 //Linha de Espaco da tabela &nbsp;
	        	 var trNbsp = document.createElement("tr"); 
	        	 tbCampoFonte.appendChild ( trNbsp );
	        	 
	        	 var tdNbsp = document.createElement("tr");
	        	 tdNbsp.setAttribute("colspan", "2");
	        	 tdNbsp.innerHTML = "&nbsp;";
	        	 trNbsp.appendChild(tdNbsp);
	        	 //
	        	 	        	 	        	 
	        	 var trTbCampoValorF = document.createElement("tr");
	        	 tbCampoFonte.appendChild ( trTbCampoValorF );
	        	 
	        	 var tdlbValorFTbCampoFonte = document.createElement("td");
	        	 tdlbValorFTbCampoFonte.setAttribute("class", "textoTabelas");
	        	 tdlbValorFTbCampoFonte.setAttribute("colspan", "2");
	        	 //tdlbValorFTbCampoFonte.setAttribute("width", "35%");
	        	 tdlbValorFTbCampoFonte.innerHTML = "<div id='valorSup"+i+"' ></div>";
	        	 trTbCampoValorF.appendChild ( tdlbValorFTbCampoFonte );

	        	 //Linha de Espaco da tabela &nbsp;
	        	 var trNbsp = document.createElement("tr"); 
	        	 tbCampoFonte.appendChild ( trNbsp );
	        	 
	        	 var tdNbsp = document.createElement("tr");
	        	 tdNbsp.setAttribute("colspan", "2");
	        	 tdNbsp.innerHTML = "&nbsp;";
	        	 trNbsp.appendChild(tdNbsp);
	        	 //	        	 
	        	 
	        	 //Linha de separacao entre as fontes
	        	 if(i != resultadosXML.length-1){
	        	 var trEndLine = document.createElement("tr"); 
	        	 tbCampoFonte.appendChild ( trEndLine );
	        	 	        	 
	        	 var tdEndLine = document.createElement("td");
	        	 tdEndLine.setAttribute("colspan", "2");
	        	 tdEndLine.setAttribute("class", "traco");
	        	 tdEndLine.innerHTML = "&nbsp";
	        	 trEndLine.appendChild(tdEndLine);
	        	 }
	        	 //
	        	 
	        	 //Linha de Espaco da tabela &nbsp;
	        	 var trNbsp = document.createElement("tr"); 
	        	 tbCampoFonte.appendChild ( trNbsp );
	        	 
	        	 var tdNbsp = document.createElement("tr");
	        	 tdNbsp.setAttribute("colspan", "2");
	        	 tdNbsp.innerHTML = "&nbsp;";
	        	 trNbsp.appendChild(tdNbsp);
	        	 //
	    	 }


	
}

function CarregarSuplemento(indice, operacao, valorFonte,fonteSaldo, valorSuplemento)
{
	var divSuplemento = document.getElementById("valorSup"+indice);
	var valorSupSemFormato = moeda2Int(valorSuplemento);
	
	if(operacao == 1 ) //1 - suplementacao
	{
		var valorTotal = parseInt(valorFonte) + valorSupSemFormato;
		var totalMoeda = formataMoeda(valorTotal);
		
		var valorTotalSaldo = parseInt(fonteSaldo) + valorSupSemFormato;
		var totalMoedaSaldo = formataMoeda(valorTotalSaldo);
		divSuplemento.innerHTML = "&nbsp;Saldo Apos o Suplemento: "+totalMoedaSaldo+"<input type='hidden' name='supSaldo"+indice+"' value='"+totalMoedaSaldo+"'/>"+"<br><br>&nbsp;Valor Apos o Suplemento: "+totalMoeda+"<input type='hidden' name='supValor"+indice+"' value='"+totalMoeda+"'/>";;
	}else if(operacao == 2 ) //2- cancelamento
	{
		var valorTotal = parseInt(valorFonte) - valorSupSemFormato;
		var totalMoeda = formataMoeda(valorTotal);
		
		var valorTotalSaldo = parseInt(fonteSaldo) - valorSupSemFormato;
		var totalMoedaSaldo = formataMoeda(valorTotalSaldo);

		divSuplemento.innerHTML = "<span "+((valorTotalSaldo <=0)?"style='Color: red;'":"style='color: black;'")+">&nbsp;Saldo Apos o Cancelamento: "+totalMoedaSaldo+"</span><input type='hidden' id='supSaldo"+indice+"' name='supSaldo"+indice+"' value='"+totalMoedaSaldo+"'/><br><br><span "+((valorTotal <=0)?"style='Color: red;'":"style='color: black;'")+">&nbsp;Valor Apos o Cancelamento: "+totalMoeda+"</span><input type='hidden' name='supValor"+indice+"' value='"+totalMoeda+"'/>";
	}

		
}

function FiltarPlanosInternos( acaoId )
{
         var ajax = new sack();
         var url = "http://"+servidor+"/CarregarDados.php?informacao=carregar_plano_interno&acaoId="+acaoId;
         ajax.requestFile = url;
         ajax.onCompletion = function() { ProcessarXMLFiltrarPlanosInternos( ajax.responseXML ); };
         ajax.runAJAX();
}

/**
Transforma os resultados vindo do XML em informa��es din�micas na tela
@xml - XML com as informa��es sobre o plano interno
*/
function ProcessarXMLFiltrarPlanosInternos( xml )
{
         var selectPlanoInterno = document.getElementById("planoInternoId");
         var optionPlanoInterno = document.getElementById("planoInterno");

         var i;
         // antes de exibir o resultado limpa o select que contem as informa��es da consulta anterior
         for( i = selectPlanoInterno.length -1; i >= 1; i-- )
         {
                  selectPlanoInterno.remove(i);
         }

         if( xml == null )
         {
             /*var divInformacaoSetor = document.getElementById("informacaoSetor");
             if( divInformacaoSetor != null )
                 divInformacaoSetor.innerHTML = "";*/
             optionPlanoInterno.innerHTML = "Nenhum plano interno cadastrado!";

         }
         else
         {

              var resultadosXML = xml.getElementsByTagName("plano_interno");
              var selectTipoDesp = document.getElementById("tipoDespesa").value;
              if( resultadosXML.length > 0) // verifica se houveram resultados
	          {
        		                      for(var i=0; i < resultadosXML.length; i++) // percorre o resultado
        		                      {
                                                  // recupera as informa��es vindas do xml
                                                  var planoInterno = resultadosXML[i];
                                                  var codigo = planoInterno.getElementsByTagName("codigo")[0].firstChild.nodeValue;
                                                  var titulo = planoInterno.getElementsByTagName("titulo")[0].firstChild.nodeValue;
                                                  

                                                  // adiciona um novo 'option' ao campo select com o plano interno encontrado
                                                 
                                                  var novoPlanoInterno = document.createElement("option");
                                                  novoPlanoInterno.setAttribute("id", "planoInterno");
                                                  novoPlanoInterno.value = codigo;
                                                  novoPlanoInterno.text  = codigo+" - "+titulo;
                                                  selectPlanoInterno.options.add(novoPlanoInterno);

                                                 optionPlanoInterno.innerHTML = "Selecione o plano interno";
        		                      }
             }
        }
}
